\hypertarget{class_obstacle_manager}{
\section{ObstacleManager Class Reference}
\label{class_obstacle_manager}\index{ObstacleManager@{ObstacleManager}}
}


the manager of obstacle, responsible for creating and maintaining them  




{\ttfamily \#include $<$ObstacleManager.h$>$}

\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{class_obstacle_manager_ada5fb64df1bac37e1f4e9b82769da20d}{ObstacleManager} ()
\begin{DoxyCompactList}\small\item\em ctor \end{DoxyCompactList}\item 
\hyperlink{class_obstacle_manager_a48031a527139901ddfc4d1a9d51ff367}{$\sim$ObstacleManager} ()
\begin{DoxyCompactList}\small\item\em dtor \end{DoxyCompactList}\item 
void \hyperlink{class_obstacle_manager_a8a01a93ae8e48b0f44f4812114a91cb3}{loadGeometry} ()
\begin{DoxyCompactList}\small\item\em load vbo geometry \end{DoxyCompactList}\item 
void \hyperlink{class_obstacle_manager_a5779bf28654a043a59e31e17aad9e28d}{draw} (ngl::TransformStack \_\-txStack, \hyperlink{class_shader_manager}{ShaderManager} $\ast$io\_\-sman, const std::string \_\-shader)
\begin{DoxyCompactList}\small\item\em draws the obstacles \end{DoxyCompactList}\item 
bool \hyperlink{class_obstacle_manager_aa1812dc85cd1914bf923a31cbe8f4dcf}{checkAndResolveCollision} (const ngl::Vector \_\-currentPosition, const ngl::Vector \_\-lastPosition, const float \_\-currentParticleRadius, ngl::Vector \&o\_\-newPosition)
\begin{DoxyCompactList}\small\item\em returns whether collision occured with a particle \end{DoxyCompactList}\item 
void \hyperlink{class_obstacle_manager_a582c61a04623bca91d1b611128c76737}{setObstacleEnabled} (const bool \_\-v)
\begin{DoxyCompactList}\small\item\em sets the toggle flag for obstacle \end{DoxyCompactList}\item 
bool \hyperlink{class_obstacle_manager_a684aa8c06b316073ea89806ae1f4b14a}{getObstacleEnabled} ()
\begin{DoxyCompactList}\small\item\em returns the toggle flag of the obstacles \end{DoxyCompactList}\item 
void \hyperlink{class_obstacle_manager_a4a7a4af978efbf959551f451b54d9a3c}{setCubeEnabled} (const bool \_\-v)
\begin{DoxyCompactList}\small\item\em sets the toggle flag for cube obstacle \end{DoxyCompactList}\item 
bool \hyperlink{class_obstacle_manager_aa151b4d7c7fd12055cabe91c318cd101}{getCubeEnabled} ()
\begin{DoxyCompactList}\small\item\em returns the toggle flag of the cube obstacle \end{DoxyCompactList}\item 
void \hyperlink{class_obstacle_manager_a7e31f266f04832f5a2daa6f08cf3726b}{setDrawBBox} (const bool \_\-v)
\begin{DoxyCompactList}\small\item\em sets the toggle flag for bbox drawing for cube obstacle \end{DoxyCompactList}\item 
bool \hyperlink{class_obstacle_manager_a11855a08b170d4971cfe7d98e52bf27a}{getDrawBBox} ()
\begin{DoxyCompactList}\small\item\em returns the toggle flag of the bbox drawing for the cube obstacle \end{DoxyCompactList}\item 
void \hyperlink{class_obstacle_manager_a4c610a027ab22fc5575169310f44f644}{setCubePosition} (ngl::Vector \_\-v)
\begin{DoxyCompactList}\small\item\em sets the position of the cube obstacle \end{DoxyCompactList}\item 
ngl::Vector \hyperlink{class_obstacle_manager_a3595afe5e03e8e06b0d7f221574ba5de}{getCubePosition} ()
\begin{DoxyCompactList}\small\item\em returns the position of the cube obstacle \end{DoxyCompactList}\item 
void \hyperlink{class_obstacle_manager_af42856b4e406b1dd45ceb91e7b337fb7}{setCubeDimension} (const ngl::Vector \_\-v)
\begin{DoxyCompactList}\small\item\em sets the size of the cube obstacle \end{DoxyCompactList}\item 
ngl::Vector \hyperlink{class_obstacle_manager_a0cdd11750dc127c4f6cee4b4500779d5}{getCubeDimension} ()
\begin{DoxyCompactList}\small\item\em returns the size of the cube obstacle \end{DoxyCompactList}\item 
void \hyperlink{class_obstacle_manager_ae881d5f9fe32267a4dd996aea9f92103}{setSphereEnabled} (const bool \_\-v)
\begin{DoxyCompactList}\small\item\em sets the toggle flag for sphere obstacle \end{DoxyCompactList}\item 
bool \hyperlink{class_obstacle_manager_ae508b4d9dce6c8049a9baab9a39cfbb8}{getSphereEnabled} ()
\begin{DoxyCompactList}\small\item\em returns the toggle flag of the sphere obstacle \end{DoxyCompactList}\item 
void \hyperlink{class_obstacle_manager_ad709ef246fe648281261341697f4b688}{setSpherePosition} (const ngl::Vector \_\-v)
\begin{DoxyCompactList}\small\item\em sets the position of the sphere obstacle \end{DoxyCompactList}\item 
ngl::Vector \hyperlink{class_obstacle_manager_aef91439b6ae5b96c1ff54d3d947fb3f7}{getSpherePosition} ()
\begin{DoxyCompactList}\small\item\em returns the position of the sphere obstacle \end{DoxyCompactList}\item 
void \hyperlink{class_obstacle_manager_a5e86ef4b058e61c407b25a525f5a9558}{setSphereRadius} (const int \_\-v)
\begin{DoxyCompactList}\small\item\em sets the radius of the sphere obstacle \end{DoxyCompactList}\item 
int \hyperlink{class_obstacle_manager_af664d7e254081329af495ef9a2a666db}{getSphereRadius} ()
\begin{DoxyCompactList}\small\item\em returns the radius of the sphere obstacle \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Private Member Functions}
\begin{DoxyCompactItemize}
\item 
bool \hyperlink{class_obstacle_manager_add4ca3b7bd5158733bd7ca77266e87c2}{isObjectInsideSphere} (const ngl::Vector \_\-obstacleCenter, const float \_\-obstacleRadius, const ngl::Vector \_\-objectCenter, const float \_\-objectRadius, ngl::Vector \&o\_\-safePosition)
\begin{DoxyCompactList}\small\item\em determines collision between 2 spheres and returns a safe position outside of the obstacle \end{DoxyCompactList}\item 
bool \hyperlink{class_obstacle_manager_ada3e3aa8c291c75e4bfd1d0e24563de2}{isObjectInsideCube} (ngl::BBox $\ast$\_\-cubeBBox, const ngl::Vector \_\-currentPosition, const ngl::Vector \_\-lastPosition, ngl::Vector \&o\_\-newPosition)
\begin{DoxyCompactList}\small\item\em determines collision between sphere and cube and returns a safe position outside of the obstacle \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
bool \hyperlink{class_obstacle_manager_ab3b483730ea9a4be8a58439817d0fd07}{m\_\-obstacleEnabled}
\begin{DoxyCompactList}\small\item\em toggle flag for obstacles \end{DoxyCompactList}\item 
bool \hyperlink{class_obstacle_manager_a34e3940febd8cf8b2b86f1c5596eaae7}{m\_\-sphereEnabled}
\begin{DoxyCompactList}\small\item\em toggle flag for sphere obstacle \end{DoxyCompactList}\item 
ngl::Vector \hyperlink{class_obstacle_manager_a4056fe8fed6587d1b4d7a73f873e72d0}{m\_\-spherePosition}
\begin{DoxyCompactList}\small\item\em position of sphere obstacle \end{DoxyCompactList}\item 
int \hyperlink{class_obstacle_manager_a1490f30a0774554dd747ae31fe82d772}{m\_\-sphereRadius}
\begin{DoxyCompactList}\small\item\em radius of sphere obstacle \end{DoxyCompactList}\item 
bool \hyperlink{class_obstacle_manager_a454f3273920bd7fd16217e3443cc2e12}{m\_\-cubeEnabled}
\begin{DoxyCompactList}\small\item\em toggle flag for cube obstacle \end{DoxyCompactList}\item 
bool \hyperlink{class_obstacle_manager_abd33e4b1b02ec66ca552addeeba20719}{m\_\-drawBBox}
\begin{DoxyCompactList}\small\item\em toggle flag for bbox drawing \end{DoxyCompactList}\item 
ngl::Vector \hyperlink{class_obstacle_manager_a9868902b2b7139c8efd7cd63eddd6213}{m\_\-cubeDimension}
\begin{DoxyCompactList}\small\item\em size of cube obstacle \end{DoxyCompactList}\item 
ngl::Vector \hyperlink{class_obstacle_manager_aff67c842416fffa3fab01bce9a270759}{m\_\-cubePosition}
\begin{DoxyCompactList}\small\item\em position of cube obstacle \end{DoxyCompactList}\item 
ngl::BBox $\ast$ \hyperlink{class_obstacle_manager_a54aa355207f4091a5c69526afb3d6515}{m\_\-cubeBBox}
\begin{DoxyCompactList}\small\item\em bounding box of cube obstacle \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
the manager of obstacle, responsible for creating and maintaining them 

Definition at line 23 of file ObstacleManager.h.



\subsection{Constructor \& Destructor Documentation}
\hypertarget{class_obstacle_manager_ada5fb64df1bac37e1f4e9b82769da20d}{
\index{ObstacleManager@{ObstacleManager}!ObstacleManager@{ObstacleManager}}
\index{ObstacleManager@{ObstacleManager}!ObstacleManager@{ObstacleManager}}
\subsubsection[{ObstacleManager}]{\setlength{\rightskip}{0pt plus 5cm}ObstacleManager::ObstacleManager (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}}
\label{class_obstacle_manager_ada5fb64df1bac37e1f4e9b82769da20d}


ctor 



Definition at line 8 of file ObstacleManager.cpp.



References Configuration::initialiseObstacles(), m\_\-cubeBBox, m\_\-cubeDimension, m\_\-cubeEnabled, m\_\-cubePosition, m\_\-drawBBox, m\_\-obstacleEnabled, m\_\-sphereEnabled, m\_\-spherePosition, and m\_\-sphereRadius.


\begin{DoxyCode}
{
    //create obstacles from config
    Configuration::initialiseObstacles
                            (
                                m_cubeEnabled,
                                m_cubePosition,
                                m_cubeDimension,
                                m_sphereEnabled,
                                m_spherePosition,
                                m_sphereRadius
                            );

    //create bbox for cube
    m_cubeBBox = new ngl::BBox(m_cubePosition, m_cubeDimension.m_x * 1.1, 
      m_cubeDimension.m_y * 1.1, m_cubeDimension.m_z * 1.1);

    m_obstacleEnabled = true;
    m_drawBBox = true;
}
\end{DoxyCode}


Here is the call graph for this function:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=400pt]{class_obstacle_manager_ada5fb64df1bac37e1f4e9b82769da20d_cgraph}
\end{center}
\end{figure}


\hypertarget{class_obstacle_manager_a48031a527139901ddfc4d1a9d51ff367}{
\index{ObstacleManager@{ObstacleManager}!$\sim$ObstacleManager@{$\sim$ObstacleManager}}
\index{$\sim$ObstacleManager@{$\sim$ObstacleManager}!ObstacleManager@{ObstacleManager}}
\subsubsection[{$\sim$ObstacleManager}]{\setlength{\rightskip}{0pt plus 5cm}ObstacleManager::$\sim$ObstacleManager (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}}
\label{class_obstacle_manager_a48031a527139901ddfc4d1a9d51ff367}


dtor 



Definition at line 28 of file ObstacleManager.cpp.



References m\_\-cubeBBox.


\begin{DoxyCode}
{
    //clean up
    std::cout << "Obstacle Manager Cleanup" << std::endl;

    delete m_cubeBBox;
}
\end{DoxyCode}


\subsection{Member Function Documentation}
\hypertarget{class_obstacle_manager_aa1812dc85cd1914bf923a31cbe8f4dcf}{
\index{ObstacleManager@{ObstacleManager}!checkAndResolveCollision@{checkAndResolveCollision}}
\index{checkAndResolveCollision@{checkAndResolveCollision}!ObstacleManager@{ObstacleManager}}
\subsubsection[{checkAndResolveCollision}]{\setlength{\rightskip}{0pt plus 5cm}bool ObstacleManager::checkAndResolveCollision (
\begin{DoxyParamCaption}
\item[{const ngl::Vector}]{\_\-currentPosition, }
\item[{const ngl::Vector}]{\_\-lastPosition, }
\item[{const float}]{\_\-currentParticleRadius, }
\item[{ngl::Vector \&}]{o\_\-newPosition}
\end{DoxyParamCaption}
)}}
\label{class_obstacle_manager_aa1812dc85cd1914bf923a31cbe8f4dcf}


returns whether collision occured with a particle 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em \_\-currentPosition} & the current position of the \hyperlink{class_particle}{Particle} \\
\hline
\mbox{\tt in}  & {\em \_\-lastPosition} & the last position of the \hyperlink{class_particle}{Particle} \\
\hline
\mbox{\tt in}  & {\em \_\-currentParticleRadius} & the radius of the \hyperlink{class_particle}{Particle} \\
\hline
\mbox{\tt out}  & {\em o\_\-newPosition} & the safe position outside of the obstacle \\
\hline
\end{DoxyParams}


Definition at line 97 of file ObstacleManager.cpp.


\begin{DoxyCode}
{
    if (m_obstacleEnabled)
    {
        bool collisionWithSphere = !m_sphereEnabled ? false : 
      isObjectInsideSphere(m_spherePosition, m_sphereRadius, currentPosition, currentPa
      rticleRadius, newPosition);
        if (collisionWithSphere) return collisionWithSphere;

        bool collisionWithCube = !m_cubeEnabled ? false : isObjectInsideCube(
      m_cubeBBox, currentPosition, lastPosition, newPosition);
        return collisionWithCube;
    }
    return false;

}
\end{DoxyCode}


Here is the caller graph for this function:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=400pt]{class_obstacle_manager_aa1812dc85cd1914bf923a31cbe8f4dcf_icgraph}
\end{center}
\end{figure}


\hypertarget{class_obstacle_manager_a5779bf28654a043a59e31e17aad9e28d}{
\index{ObstacleManager@{ObstacleManager}!draw@{draw}}
\index{draw@{draw}!ObstacleManager@{ObstacleManager}}
\subsubsection[{draw}]{\setlength{\rightskip}{0pt plus 5cm}void ObstacleManager::draw (
\begin{DoxyParamCaption}
\item[{ngl::TransformStack}]{\_\-txStack, }
\item[{{\bf ShaderManager} $\ast$}]{io\_\-sman, }
\item[{const std::string}]{\_\-shader}
\end{DoxyParamCaption}
)}}
\label{class_obstacle_manager_a5779bf28654a043a59e31e17aad9e28d}


draws the obstacles 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em \_\-txStack} & the transform stack, used for pushing and popping opengl states \\
\hline
\mbox{\tt in,out}  & {\em io\_\-sman} & the shader manager, used for shading/rendering of the objects \\
\hline
\mbox{\tt in}  & {\em \_\-shader} & the shader used for drawing \\
\hline
\end{DoxyParams}


Definition at line 43 of file ObstacleManager.cpp.



References ShaderManager::updateModelColor().


\begin{DoxyCode}
{
    ngl::VBOPrimitives *prim=ngl::VBOPrimitives::instance();

    //draw obstacles if enabled
    if (m_obstacleEnabled)
    {
        //draw cube if enabled
        if (m_cubeEnabled)
        {
            _txStack.pushTransform();
            {
                _txStack.getCurrentTransform().setPosition(m_cubePosition.m_x, 
      m_cubePosition.m_y, m_cubePosition.m_z);
                _txStack.getCurrentTransform().setScale(m_cubeDimension.m_x, 
      m_cubeDimension.m_y, m_cubeDimension.m_z);

                io_sman->updateModelColor(_shader, _txStack.getCurrAndGlobal().ge
      tMatrix(), ngl::Colour(0, 1, 0));
                prim->draw("cube");
            }
            _txStack.popTransform();

            if (m_drawBBox)
            {
                _txStack.pushTransform();
                {
                    io_sman->updateModelColor("Colour", _txStack.getCurrAndGlobal
      ().getMatrix(), ngl::Colour(0, 1, 1));
                    m_cubeBBox->draw();
                }
                _txStack.popTransform();
            }

        }

        //draw sphere if enabled
        if (m_sphereEnabled)
        {
            _txStack.pushTransform();
            {
                _txStack.getCurrentTransform().setPosition(m_spherePosition.m_x, 
      m_spherePosition.m_y, m_spherePosition.m_z);
                _txStack.getCurrentTransform().setScale(m_sphereRadius, 
      m_sphereRadius, m_sphereRadius);

                io_sman->updateModelColor(_shader, _txStack.getCurrAndGlobal().ge
      tMatrix(), ngl::Colour(1, 0, 0));
                prim->draw("obstacleSphere");
            }
            _txStack.popTransform();
        }

    }
}
\end{DoxyCode}


Here is the call graph for this function:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=400pt]{class_obstacle_manager_a5779bf28654a043a59e31e17aad9e28d_cgraph}
\end{center}
\end{figure}




Here is the caller graph for this function:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=376pt]{class_obstacle_manager_a5779bf28654a043a59e31e17aad9e28d_icgraph}
\end{center}
\end{figure}


\hypertarget{class_obstacle_manager_a0cdd11750dc127c4f6cee4b4500779d5}{
\index{ObstacleManager@{ObstacleManager}!getCubeDimension@{getCubeDimension}}
\index{getCubeDimension@{getCubeDimension}!ObstacleManager@{ObstacleManager}}
\subsubsection[{getCubeDimension}]{\setlength{\rightskip}{0pt plus 5cm}ngl::Vector ObstacleManager::getCubeDimension (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{class_obstacle_manager_a0cdd11750dc127c4f6cee4b4500779d5}


returns the size of the cube obstacle 



Definition at line 101 of file ObstacleManager.h.



References m\_\-cubeDimension.


\begin{DoxyCode}
{ return m_cubeDimension; }
\end{DoxyCode}


Here is the caller graph for this function:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=400pt]{class_obstacle_manager_a0cdd11750dc127c4f6cee4b4500779d5_icgraph}
\end{center}
\end{figure}


\hypertarget{class_obstacle_manager_aa151b4d7c7fd12055cabe91c318cd101}{
\index{ObstacleManager@{ObstacleManager}!getCubeEnabled@{getCubeEnabled}}
\index{getCubeEnabled@{getCubeEnabled}!ObstacleManager@{ObstacleManager}}
\subsubsection[{getCubeEnabled}]{\setlength{\rightskip}{0pt plus 5cm}bool ObstacleManager::getCubeEnabled (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{class_obstacle_manager_aa151b4d7c7fd12055cabe91c318cd101}


returns the toggle flag of the cube obstacle 



Definition at line 71 of file ObstacleManager.h.



References m\_\-cubeEnabled.


\begin{DoxyCode}
{ return m_cubeEnabled; }
\end{DoxyCode}


Here is the caller graph for this function:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=400pt]{class_obstacle_manager_aa151b4d7c7fd12055cabe91c318cd101_icgraph}
\end{center}
\end{figure}


\hypertarget{class_obstacle_manager_a3595afe5e03e8e06b0d7f221574ba5de}{
\index{ObstacleManager@{ObstacleManager}!getCubePosition@{getCubePosition}}
\index{getCubePosition@{getCubePosition}!ObstacleManager@{ObstacleManager}}
\subsubsection[{getCubePosition}]{\setlength{\rightskip}{0pt plus 5cm}ngl::Vector ObstacleManager::getCubePosition (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{class_obstacle_manager_a3595afe5e03e8e06b0d7f221574ba5de}


returns the position of the cube obstacle 



Definition at line 89 of file ObstacleManager.h.



References m\_\-cubePosition.


\begin{DoxyCode}
{ return m_cubePosition; }
\end{DoxyCode}


Here is the caller graph for this function:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=400pt]{class_obstacle_manager_a3595afe5e03e8e06b0d7f221574ba5de_icgraph}
\end{center}
\end{figure}


\hypertarget{class_obstacle_manager_a11855a08b170d4971cfe7d98e52bf27a}{
\index{ObstacleManager@{ObstacleManager}!getDrawBBox@{getDrawBBox}}
\index{getDrawBBox@{getDrawBBox}!ObstacleManager@{ObstacleManager}}
\subsubsection[{getDrawBBox}]{\setlength{\rightskip}{0pt plus 5cm}bool ObstacleManager::getDrawBBox (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{class_obstacle_manager_a11855a08b170d4971cfe7d98e52bf27a}


returns the toggle flag of the bbox drawing for the cube obstacle 



Definition at line 78 of file ObstacleManager.h.



References m\_\-drawBBox.


\begin{DoxyCode}
{ return m_drawBBox; }
\end{DoxyCode}


Here is the caller graph for this function:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=400pt]{class_obstacle_manager_a11855a08b170d4971cfe7d98e52bf27a_icgraph}
\end{center}
\end{figure}


\hypertarget{class_obstacle_manager_a684aa8c06b316073ea89806ae1f4b14a}{
\index{ObstacleManager@{ObstacleManager}!getObstacleEnabled@{getObstacleEnabled}}
\index{getObstacleEnabled@{getObstacleEnabled}!ObstacleManager@{ObstacleManager}}
\subsubsection[{getObstacleEnabled}]{\setlength{\rightskip}{0pt plus 5cm}bool ObstacleManager::getObstacleEnabled (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{class_obstacle_manager_a684aa8c06b316073ea89806ae1f4b14a}


returns the toggle flag of the obstacles 



Definition at line 64 of file ObstacleManager.h.



References m\_\-obstacleEnabled.


\begin{DoxyCode}
{ return m_obstacleEnabled; }
\end{DoxyCode}


Here is the caller graph for this function:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=400pt]{class_obstacle_manager_a684aa8c06b316073ea89806ae1f4b14a_icgraph}
\end{center}
\end{figure}


\hypertarget{class_obstacle_manager_ae508b4d9dce6c8049a9baab9a39cfbb8}{
\index{ObstacleManager@{ObstacleManager}!getSphereEnabled@{getSphereEnabled}}
\index{getSphereEnabled@{getSphereEnabled}!ObstacleManager@{ObstacleManager}}
\subsubsection[{getSphereEnabled}]{\setlength{\rightskip}{0pt plus 5cm}bool ObstacleManager::getSphereEnabled (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{class_obstacle_manager_ae508b4d9dce6c8049a9baab9a39cfbb8}


returns the toggle flag of the sphere obstacle 



Definition at line 108 of file ObstacleManager.h.



References m\_\-sphereEnabled.


\begin{DoxyCode}
{ return m_sphereEnabled; }
\end{DoxyCode}


Here is the caller graph for this function:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=400pt]{class_obstacle_manager_ae508b4d9dce6c8049a9baab9a39cfbb8_icgraph}
\end{center}
\end{figure}


\hypertarget{class_obstacle_manager_aef91439b6ae5b96c1ff54d3d947fb3f7}{
\index{ObstacleManager@{ObstacleManager}!getSpherePosition@{getSpherePosition}}
\index{getSpherePosition@{getSpherePosition}!ObstacleManager@{ObstacleManager}}
\subsubsection[{getSpherePosition}]{\setlength{\rightskip}{0pt plus 5cm}ngl::Vector ObstacleManager::getSpherePosition (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{class_obstacle_manager_aef91439b6ae5b96c1ff54d3d947fb3f7}


returns the position of the sphere obstacle 



Definition at line 115 of file ObstacleManager.h.



References m\_\-spherePosition.


\begin{DoxyCode}
{ return m_spherePosition; }
\end{DoxyCode}


Here is the caller graph for this function:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=400pt]{class_obstacle_manager_aef91439b6ae5b96c1ff54d3d947fb3f7_icgraph}
\end{center}
\end{figure}


\hypertarget{class_obstacle_manager_af664d7e254081329af495ef9a2a666db}{
\index{ObstacleManager@{ObstacleManager}!getSphereRadius@{getSphereRadius}}
\index{getSphereRadius@{getSphereRadius}!ObstacleManager@{ObstacleManager}}
\subsubsection[{getSphereRadius}]{\setlength{\rightskip}{0pt plus 5cm}int ObstacleManager::getSphereRadius (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{class_obstacle_manager_af664d7e254081329af495ef9a2a666db}


returns the radius of the sphere obstacle 



Definition at line 122 of file ObstacleManager.h.



References m\_\-sphereRadius.


\begin{DoxyCode}
{ return m_sphereRadius; }
\end{DoxyCode}


Here is the caller graph for this function:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=400pt]{class_obstacle_manager_af664d7e254081329af495ef9a2a666db_icgraph}
\end{center}
\end{figure}


\hypertarget{class_obstacle_manager_ada3e3aa8c291c75e4bfd1d0e24563de2}{
\index{ObstacleManager@{ObstacleManager}!isObjectInsideCube@{isObjectInsideCube}}
\index{isObjectInsideCube@{isObjectInsideCube}!ObstacleManager@{ObstacleManager}}
\subsubsection[{isObjectInsideCube}]{\setlength{\rightskip}{0pt plus 5cm}bool ObstacleManager::isObjectInsideCube (
\begin{DoxyParamCaption}
\item[{ngl::BBox $\ast$}]{\_\-cubeBBox, }
\item[{const ngl::Vector}]{\_\-currentPosition, }
\item[{const ngl::Vector}]{\_\-lastPosition, }
\item[{ngl::Vector \&}]{o\_\-newPosition}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{class_obstacle_manager_ada3e3aa8c291c75e4bfd1d0e24563de2}


determines collision between sphere and cube and returns a safe position outside of the obstacle 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em \_\-cubeBBox} & the bbox of the obstacle cube \\
\hline
\mbox{\tt in}  & {\em \_\-currentPosition} & the current position of the \hyperlink{class_particle}{Particle} \\
\hline
\mbox{\tt in}  & {\em \_\-lastPosition} & the last position of the \hyperlink{class_particle}{Particle} \\
\hline
\mbox{\tt out}  & {\em o\_\-newPosition} & the safe position outside of the obstacle \\
\hline
\end{DoxyParams}


Definition at line 117 of file ObstacleManager.cpp.


\begin{DoxyCode}
{
    //determine bounds of box
    float xMax = cubeBBox->center().m_x + (cubeBBox->width()/2.0f);
    float xMin = cubeBBox->center().m_x - (cubeBBox->width()/2.0f);
    float yMax = cubeBBox->center().m_y + (cubeBBox->height()/2.0f);
    float yMin = cubeBBox->center().m_y - (cubeBBox->height()/2.0f);
    float zMax = cubeBBox->center().m_z + (cubeBBox->depth()/2.0f);
    float zMin = cubeBBox->center().m_z - (cubeBBox->depth()/2.0f);

    //assumes collision
    bool isColliding = true;

    //check if sphere is inside the box
    if (currentPosition.m_x > xMax) isColliding = false;
    if (currentPosition.m_x < xMin) isColliding = false;
    if (currentPosition.m_y > yMax) isColliding = false;
    if (currentPosition.m_y < yMin) isColliding = false;
    if (currentPosition.m_z > zMax) isColliding = false;
    if (currentPosition.m_z < zMin) isColliding = false;

    if (isColliding)
    {
        newPosition.set(currentPosition);

        //collision occured -> determine the face of the box that caused collisio
      n

        if ((lastPosition.m_y >= yMax) && (currentPosition.m_y < yMax))
        {
            //check against top face -> move particle to surface of top face
            newPosition.m_y = yMax;
        }
        else if ((lastPosition.m_y <= yMin) && (currentPosition.m_y > yMin))
        {
            //check against bottom face -> move particle to surface of bottom fac
      e
            newPosition.m_y = yMin;
        }
        else if ((lastPosition.m_x >= xMax) && (currentPosition.m_x < xMax))
        {
            //check against left face -> move particle to surface of left face
            newPosition.m_x = xMax;
        }
        else if ((lastPosition.m_x <= xMin) && (currentPosition.m_x > xMin))
        {
            //check against right face -> move particle to surface of right face
            newPosition.m_x = xMin;
        }
        else if ((lastPosition.m_z >= zMax) && (currentPosition.m_z < zMax))
        {
            //check against outplane face -> move particle to surface of outplane
       face
            newPosition.m_z = zMax;
        }
        else if ((lastPosition.m_z <= zMin) && (currentPosition.m_z > zMin))
        {
            //check against outplane face -> move particle to surface of outplane
       face
            newPosition.m_z = zMin;
        }
    }

    return isColliding;
}
\end{DoxyCode}
\hypertarget{class_obstacle_manager_add4ca3b7bd5158733bd7ca77266e87c2}{
\index{ObstacleManager@{ObstacleManager}!isObjectInsideSphere@{isObjectInsideSphere}}
\index{isObjectInsideSphere@{isObjectInsideSphere}!ObstacleManager@{ObstacleManager}}
\subsubsection[{isObjectInsideSphere}]{\setlength{\rightskip}{0pt plus 5cm}bool ObstacleManager::isObjectInsideSphere (
\begin{DoxyParamCaption}
\item[{const ngl::Vector}]{\_\-obstacleCenter, }
\item[{const float}]{\_\-obstacleRadius, }
\item[{const ngl::Vector}]{\_\-objectCenter, }
\item[{const float}]{\_\-objectRadius, }
\item[{ngl::Vector \&}]{o\_\-safePosition}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{class_obstacle_manager_add4ca3b7bd5158733bd7ca77266e87c2}


determines collision between 2 spheres and returns a safe position outside of the obstacle 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em \_\-obstacleCenter} & the center position of the obstacle \\
\hline
\mbox{\tt in}  & {\em \_\-obstacleRadius} & the radius of the obstacle \\
\hline
\mbox{\tt in}  & {\em \_\-objectCenter} & the center position of the collided object (\hyperlink{class_particle}{Particle}) \\
\hline
\mbox{\tt in}  & {\em \_\-objectRadius} & the radius of the collided object (\hyperlink{class_particle}{Particle}) \\
\hline
\mbox{\tt out}  & {\em o\_\-safePosition} & the safe position outside of the obstacle \\
\hline
\end{DoxyParams}


Definition at line 185 of file ObstacleManager.cpp.



References Utilities::normaliseVector().


\begin{DoxyCode}
{
    //assume no collision by default
    bool isColliding = false;

    //get vector from obstacle center through particle's position
    ngl::Vector vector = _objectCenter - _obstacleCenter;

    //get length of separation between the 2 objects
    float separationDistance = vector.length();

    //calculate the safe distance between the 2 objects
    float safeDistance = _obstacleRadius + _objectRadius;

    //evaluate whether collision occured
    isColliding = (separationDistance <= safeDistance);

    if (isColliding)
    {
        //collision occured -> determine safe position outside of sphere

        //normalise normal vector
        ngl::Vector targetVector = Utilities::normaliseVector(vector, vector);

        //calculate the safe position outside of the obstacle
        o_safePosition = (targetVector * safeDistance) + _obstacleCenter;
    }

    return isColliding;
}
\end{DoxyCode}


Here is the call graph for this function:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=400pt]{class_obstacle_manager_add4ca3b7bd5158733bd7ca77266e87c2_cgraph}
\end{center}
\end{figure}


\hypertarget{class_obstacle_manager_a8a01a93ae8e48b0f44f4812114a91cb3}{
\index{ObstacleManager@{ObstacleManager}!loadGeometry@{loadGeometry}}
\index{loadGeometry@{loadGeometry}!ObstacleManager@{ObstacleManager}}
\subsubsection[{loadGeometry}]{\setlength{\rightskip}{0pt plus 5cm}void ObstacleManager::loadGeometry (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}}
\label{class_obstacle_manager_a8a01a93ae8e48b0f44f4812114a91cb3}


load vbo geometry 



Definition at line 36 of file ObstacleManager.cpp.


\begin{DoxyCode}
{
    ngl::VBOPrimitives *prim=ngl::VBOPrimitives::instance();
    prim->createVBOSphere("obstacleSphere", 1, 30);
}
\end{DoxyCode}


Here is the caller graph for this function:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=400pt]{class_obstacle_manager_a8a01a93ae8e48b0f44f4812114a91cb3_icgraph}
\end{center}
\end{figure}


\hypertarget{class_obstacle_manager_af42856b4e406b1dd45ceb91e7b337fb7}{
\index{ObstacleManager@{ObstacleManager}!setCubeDimension@{setCubeDimension}}
\index{setCubeDimension@{setCubeDimension}!ObstacleManager@{ObstacleManager}}
\subsubsection[{setCubeDimension}]{\setlength{\rightskip}{0pt plus 5cm}void ObstacleManager::setCubeDimension (
\begin{DoxyParamCaption}
\item[{const ngl::Vector}]{\_\-v}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{class_obstacle_manager_af42856b4e406b1dd45ceb91e7b337fb7}


sets the size of the cube obstacle 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em \_\-v} & the size of the cube obstacle \\
\hline
\end{DoxyParams}


Definition at line 93 of file ObstacleManager.h.



References m\_\-cubeBBox, m\_\-cubeDimension, and m\_\-cubePosition.


\begin{DoxyCode}
    {
        m_cubeDimension = _v;
        delete m_cubeBBox;
        m_cubeBBox = new ngl::BBox(m_cubePosition, m_cubeDimension.m_x * 1.1, 
      m_cubeDimension.m_y * 1.1, m_cubeDimension.m_z * 1.1);
    }
\end{DoxyCode}


Here is the caller graph for this function:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=400pt]{class_obstacle_manager_af42856b4e406b1dd45ceb91e7b337fb7_icgraph}
\end{center}
\end{figure}


\hypertarget{class_obstacle_manager_a4a7a4af978efbf959551f451b54d9a3c}{
\index{ObstacleManager@{ObstacleManager}!setCubeEnabled@{setCubeEnabled}}
\index{setCubeEnabled@{setCubeEnabled}!ObstacleManager@{ObstacleManager}}
\subsubsection[{setCubeEnabled}]{\setlength{\rightskip}{0pt plus 5cm}void ObstacleManager::setCubeEnabled (
\begin{DoxyParamCaption}
\item[{const bool}]{\_\-v}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{class_obstacle_manager_a4a7a4af978efbf959551f451b54d9a3c}


sets the toggle flag for cube obstacle 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em \_\-v} & the toggle for cube obstacle \\
\hline
\end{DoxyParams}


Definition at line 68 of file ObstacleManager.h.



References m\_\-cubeEnabled.


\begin{DoxyCode}
{ m_cubeEnabled = _v; }
\end{DoxyCode}


Here is the caller graph for this function:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=400pt]{class_obstacle_manager_a4a7a4af978efbf959551f451b54d9a3c_icgraph}
\end{center}
\end{figure}


\hypertarget{class_obstacle_manager_a4c610a027ab22fc5575169310f44f644}{
\index{ObstacleManager@{ObstacleManager}!setCubePosition@{setCubePosition}}
\index{setCubePosition@{setCubePosition}!ObstacleManager@{ObstacleManager}}
\subsubsection[{setCubePosition}]{\setlength{\rightskip}{0pt plus 5cm}void ObstacleManager::setCubePosition (
\begin{DoxyParamCaption}
\item[{ngl::Vector}]{\_\-v}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{class_obstacle_manager_a4c610a027ab22fc5575169310f44f644}


sets the position of the cube obstacle 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em \_\-v} & the position of the cube obstacle \\
\hline
\end{DoxyParams}


Definition at line 82 of file ObstacleManager.h.



References m\_\-cubeBBox, and m\_\-cubePosition.


\begin{DoxyCode}
    {
        m_cubePosition = _v;
        m_cubeBBox->setCenter(_v);
    }
\end{DoxyCode}


Here is the caller graph for this function:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=400pt]{class_obstacle_manager_a4c610a027ab22fc5575169310f44f644_icgraph}
\end{center}
\end{figure}


\hypertarget{class_obstacle_manager_a7e31f266f04832f5a2daa6f08cf3726b}{
\index{ObstacleManager@{ObstacleManager}!setDrawBBox@{setDrawBBox}}
\index{setDrawBBox@{setDrawBBox}!ObstacleManager@{ObstacleManager}}
\subsubsection[{setDrawBBox}]{\setlength{\rightskip}{0pt plus 5cm}void ObstacleManager::setDrawBBox (
\begin{DoxyParamCaption}
\item[{const bool}]{\_\-v}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{class_obstacle_manager_a7e31f266f04832f5a2daa6f08cf3726b}


sets the toggle flag for bbox drawing for cube obstacle 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em \_\-v} & the toggle for bbox drawing for cube obstacle \\
\hline
\end{DoxyParams}


Definition at line 75 of file ObstacleManager.h.



References m\_\-drawBBox.


\begin{DoxyCode}
{ m_drawBBox = _v; }
\end{DoxyCode}


Here is the caller graph for this function:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=400pt]{class_obstacle_manager_a7e31f266f04832f5a2daa6f08cf3726b_icgraph}
\end{center}
\end{figure}


\hypertarget{class_obstacle_manager_a582c61a04623bca91d1b611128c76737}{
\index{ObstacleManager@{ObstacleManager}!setObstacleEnabled@{setObstacleEnabled}}
\index{setObstacleEnabled@{setObstacleEnabled}!ObstacleManager@{ObstacleManager}}
\subsubsection[{setObstacleEnabled}]{\setlength{\rightskip}{0pt plus 5cm}void ObstacleManager::setObstacleEnabled (
\begin{DoxyParamCaption}
\item[{const bool}]{\_\-v}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{class_obstacle_manager_a582c61a04623bca91d1b611128c76737}


sets the toggle flag for obstacle 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em \_\-v} & the toggle for obstacles \\
\hline
\end{DoxyParams}


Definition at line 61 of file ObstacleManager.h.



References m\_\-obstacleEnabled.


\begin{DoxyCode}
{ m_obstacleEnabled = _v; }
\end{DoxyCode}


Here is the caller graph for this function:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=400pt]{class_obstacle_manager_a582c61a04623bca91d1b611128c76737_icgraph}
\end{center}
\end{figure}


\hypertarget{class_obstacle_manager_ae881d5f9fe32267a4dd996aea9f92103}{
\index{ObstacleManager@{ObstacleManager}!setSphereEnabled@{setSphereEnabled}}
\index{setSphereEnabled@{setSphereEnabled}!ObstacleManager@{ObstacleManager}}
\subsubsection[{setSphereEnabled}]{\setlength{\rightskip}{0pt plus 5cm}void ObstacleManager::setSphereEnabled (
\begin{DoxyParamCaption}
\item[{const bool}]{\_\-v}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{class_obstacle_manager_ae881d5f9fe32267a4dd996aea9f92103}


sets the toggle flag for sphere obstacle 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em \_\-v} & the toggle for sphere obstacle \\
\hline
\end{DoxyParams}


Definition at line 105 of file ObstacleManager.h.



References m\_\-sphereEnabled.


\begin{DoxyCode}
{ m_sphereEnabled = _v; }
\end{DoxyCode}


Here is the caller graph for this function:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=400pt]{class_obstacle_manager_ae881d5f9fe32267a4dd996aea9f92103_icgraph}
\end{center}
\end{figure}


\hypertarget{class_obstacle_manager_ad709ef246fe648281261341697f4b688}{
\index{ObstacleManager@{ObstacleManager}!setSpherePosition@{setSpherePosition}}
\index{setSpherePosition@{setSpherePosition}!ObstacleManager@{ObstacleManager}}
\subsubsection[{setSpherePosition}]{\setlength{\rightskip}{0pt plus 5cm}void ObstacleManager::setSpherePosition (
\begin{DoxyParamCaption}
\item[{const ngl::Vector}]{\_\-v}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{class_obstacle_manager_ad709ef246fe648281261341697f4b688}


sets the position of the sphere obstacle 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em \_\-v} & the position of the sphere obstacle \\
\hline
\end{DoxyParams}


Definition at line 112 of file ObstacleManager.h.



References m\_\-spherePosition.


\begin{DoxyCode}
{ m_spherePosition = _v; }
\end{DoxyCode}


Here is the caller graph for this function:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=400pt]{class_obstacle_manager_ad709ef246fe648281261341697f4b688_icgraph}
\end{center}
\end{figure}


\hypertarget{class_obstacle_manager_a5e86ef4b058e61c407b25a525f5a9558}{
\index{ObstacleManager@{ObstacleManager}!setSphereRadius@{setSphereRadius}}
\index{setSphereRadius@{setSphereRadius}!ObstacleManager@{ObstacleManager}}
\subsubsection[{setSphereRadius}]{\setlength{\rightskip}{0pt plus 5cm}void ObstacleManager::setSphereRadius (
\begin{DoxyParamCaption}
\item[{const int}]{\_\-v}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{class_obstacle_manager_a5e86ef4b058e61c407b25a525f5a9558}


sets the radius of the sphere obstacle 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em \_\-v} & the radius of the sphere obstacle \\
\hline
\end{DoxyParams}


Definition at line 119 of file ObstacleManager.h.



References m\_\-sphereRadius.


\begin{DoxyCode}
{ m_sphereRadius = _v; }
\end{DoxyCode}


Here is the caller graph for this function:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=400pt]{class_obstacle_manager_a5e86ef4b058e61c407b25a525f5a9558_icgraph}
\end{center}
\end{figure}




\subsection{Member Data Documentation}
\hypertarget{class_obstacle_manager_a54aa355207f4091a5c69526afb3d6515}{
\index{ObstacleManager@{ObstacleManager}!m\_\-cubeBBox@{m\_\-cubeBBox}}
\index{m\_\-cubeBBox@{m\_\-cubeBBox}!ObstacleManager@{ObstacleManager}}
\subsubsection[{m\_\-cubeBBox}]{\setlength{\rightskip}{0pt plus 5cm}ngl::BBox$\ast$ {\bf ObstacleManager::m\_\-cubeBBox}\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{class_obstacle_manager_a54aa355207f4091a5c69526afb3d6515}


bounding box of cube obstacle 



Definition at line 150 of file ObstacleManager.h.

\hypertarget{class_obstacle_manager_a9868902b2b7139c8efd7cd63eddd6213}{
\index{ObstacleManager@{ObstacleManager}!m\_\-cubeDimension@{m\_\-cubeDimension}}
\index{m\_\-cubeDimension@{m\_\-cubeDimension}!ObstacleManager@{ObstacleManager}}
\subsubsection[{m\_\-cubeDimension}]{\setlength{\rightskip}{0pt plus 5cm}ngl::Vector {\bf ObstacleManager::m\_\-cubeDimension}\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{class_obstacle_manager_a9868902b2b7139c8efd7cd63eddd6213}


size of cube obstacle 



Definition at line 144 of file ObstacleManager.h.

\hypertarget{class_obstacle_manager_a454f3273920bd7fd16217e3443cc2e12}{
\index{ObstacleManager@{ObstacleManager}!m\_\-cubeEnabled@{m\_\-cubeEnabled}}
\index{m\_\-cubeEnabled@{m\_\-cubeEnabled}!ObstacleManager@{ObstacleManager}}
\subsubsection[{m\_\-cubeEnabled}]{\setlength{\rightskip}{0pt plus 5cm}bool {\bf ObstacleManager::m\_\-cubeEnabled}\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{class_obstacle_manager_a454f3273920bd7fd16217e3443cc2e12}


toggle flag for cube obstacle 



Definition at line 138 of file ObstacleManager.h.

\hypertarget{class_obstacle_manager_aff67c842416fffa3fab01bce9a270759}{
\index{ObstacleManager@{ObstacleManager}!m\_\-cubePosition@{m\_\-cubePosition}}
\index{m\_\-cubePosition@{m\_\-cubePosition}!ObstacleManager@{ObstacleManager}}
\subsubsection[{m\_\-cubePosition}]{\setlength{\rightskip}{0pt plus 5cm}ngl::Vector {\bf ObstacleManager::m\_\-cubePosition}\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{class_obstacle_manager_aff67c842416fffa3fab01bce9a270759}


position of cube obstacle 



Definition at line 147 of file ObstacleManager.h.

\hypertarget{class_obstacle_manager_abd33e4b1b02ec66ca552addeeba20719}{
\index{ObstacleManager@{ObstacleManager}!m\_\-drawBBox@{m\_\-drawBBox}}
\index{m\_\-drawBBox@{m\_\-drawBBox}!ObstacleManager@{ObstacleManager}}
\subsubsection[{m\_\-drawBBox}]{\setlength{\rightskip}{0pt plus 5cm}bool {\bf ObstacleManager::m\_\-drawBBox}\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{class_obstacle_manager_abd33e4b1b02ec66ca552addeeba20719}


toggle flag for bbox drawing 



Definition at line 141 of file ObstacleManager.h.

\hypertarget{class_obstacle_manager_ab3b483730ea9a4be8a58439817d0fd07}{
\index{ObstacleManager@{ObstacleManager}!m\_\-obstacleEnabled@{m\_\-obstacleEnabled}}
\index{m\_\-obstacleEnabled@{m\_\-obstacleEnabled}!ObstacleManager@{ObstacleManager}}
\subsubsection[{m\_\-obstacleEnabled}]{\setlength{\rightskip}{0pt plus 5cm}bool {\bf ObstacleManager::m\_\-obstacleEnabled}\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{class_obstacle_manager_ab3b483730ea9a4be8a58439817d0fd07}


toggle flag for obstacles 



Definition at line 126 of file ObstacleManager.h.

\hypertarget{class_obstacle_manager_a34e3940febd8cf8b2b86f1c5596eaae7}{
\index{ObstacleManager@{ObstacleManager}!m\_\-sphereEnabled@{m\_\-sphereEnabled}}
\index{m\_\-sphereEnabled@{m\_\-sphereEnabled}!ObstacleManager@{ObstacleManager}}
\subsubsection[{m\_\-sphereEnabled}]{\setlength{\rightskip}{0pt plus 5cm}bool {\bf ObstacleManager::m\_\-sphereEnabled}\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{class_obstacle_manager_a34e3940febd8cf8b2b86f1c5596eaae7}


toggle flag for sphere obstacle 



Definition at line 129 of file ObstacleManager.h.

\hypertarget{class_obstacle_manager_a4056fe8fed6587d1b4d7a73f873e72d0}{
\index{ObstacleManager@{ObstacleManager}!m\_\-spherePosition@{m\_\-spherePosition}}
\index{m\_\-spherePosition@{m\_\-spherePosition}!ObstacleManager@{ObstacleManager}}
\subsubsection[{m\_\-spherePosition}]{\setlength{\rightskip}{0pt plus 5cm}ngl::Vector {\bf ObstacleManager::m\_\-spherePosition}\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{class_obstacle_manager_a4056fe8fed6587d1b4d7a73f873e72d0}


position of sphere obstacle 



Definition at line 132 of file ObstacleManager.h.

\hypertarget{class_obstacle_manager_a1490f30a0774554dd747ae31fe82d772}{
\index{ObstacleManager@{ObstacleManager}!m\_\-sphereRadius@{m\_\-sphereRadius}}
\index{m\_\-sphereRadius@{m\_\-sphereRadius}!ObstacleManager@{ObstacleManager}}
\subsubsection[{m\_\-sphereRadius}]{\setlength{\rightskip}{0pt plus 5cm}int {\bf ObstacleManager::m\_\-sphereRadius}\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{class_obstacle_manager_a1490f30a0774554dd747ae31fe82d772}


radius of sphere obstacle 



Definition at line 135 of file ObstacleManager.h.



The documentation for this class was generated from the following files:\begin{DoxyCompactItemize}
\item 
include/\hyperlink{_obstacle_manager_8h}{ObstacleManager.h}\item 
src/\hyperlink{_obstacle_manager_8cpp}{ObstacleManager.cpp}\end{DoxyCompactItemize}
